/*var a = [];

for (var i = 0; i < 10; i++) {
  a[i] = function () {
    alert(i);//弹出的是全局变量i
  };
}
//使用var时i会被覆盖,循环完后i的值是10,所以从 a[0]到a[9]的值都是10
a[6](); // 10*/


var a = [];
//let一个块级作用域，就像函数作用域一样，函数执行完毕，其中的变量会被销毁，
//但是因为这个代码块中存在一个闭包，闭包的作用域链中包含着（或着说是引用着）块级作用域，
//所以在闭包被调用之前，这个块级作用域内部的变量不会被销毁。
for (let i = 0; i < 10; i++) {
  a[i] = function () {
    alert(i);
  };
}
a[6](); // 6

